#include "stdafx.h"
#include "Folder.h"


Folder::~Folder() {
	remove_from_Message();
}

Folder::Folder(const Folder &f) 
	:msgs(f.msgs) {
	add_to_Message(f);
}

Folder& Folder::operator=(const Folder &rhs) {
	remove_from_Message();
	msgs = rhs.msgs;
	add_to_Message(rhs);
	return *this;
}

void Folder::addMsg(Message *m) {
	msgs.insert(m);
}

void Folder::remMsg(Message *m) {
	msgs.erase(m);
}

void Folder::add_to_Message(const Folder &f) {
	for (auto m : f.msgs) {
		m->addFolder(this);
	}
}

void Folder::remove_from_Message() {
	for (auto m : msgs) {
		m->removeFolder(this);
	}
}